import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 刘远望
 * Date: 2025-06-12
 * Time: 22:03
 */
public class Demo9 {
    public static void main(String[] args) {
        //字符流 读操作
        try (Reader reader = new FileReader("./test.txt")) {

            while (true) {//一直
               /* int c = reader.read();//返回值int(最大值0xFFFF两个字节的最大值)
                if (c == -1) {
                    break;
                }
                System.out.println((char) c);*/

                char[] buf = new char[1024];//可以起到一个缓冲区的作用
                int n = reader.read(buf);
                if (n == -1) {
                    break;
                }

                for (int i = 0; i < n; i++) {
                    System.out.println(buf[i]);
                }
            }
            /**
             * 使用字节流的时候这里的你好都是三个字节
             * char 只能接受两个字节的 对于字符流这是为啥能接收呢
             * 字节流读到的是文件中的原始数据 硬盘上保存的时候就是utf8编码
             * 字符流读取的时候，就会根据文件的内容编码格式进行解码 read()一次 就会读取三个字节(按照utf8编码)
             * 返回的时候 针对三个字节进行转码了, 拿着3字节查了以下utf8编码表 你汉字
             * read又把你这个汉字在unicode这个码表再次查询一次，得到unicode的编码值 最终把unicode的编码值返回到int中(实际两字节)这杨=样char就能接收了
             */

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
